使用 dnsmasq 配置内网域名解析 您所在的位置:网站首页 openwrt 自定义 dns 使用 dnsmasq 配置内网域名解析

使用 dnsmasq 配置内网域名解析

2023-09-29 20:52| 来源: 网络整理| 查看: 265

dnsmasq 使用上比bind要简便得多,可以做正向、反向dns解析,支持DHCP服务。也可以做内部dns服务器用.

本初仅使用DNS功能,给本地局域网服务器提供:hosts主机记录,自定义域名,以及公网域名DNS转发解析。

实现功能:利用dnsmasq做dns解析服务,内网的域名解析为本机的ip地址,外网的域名通过dns解析为外网对应的地址.

配置文件解析:

dnsmasq安装完成后,默认配置文件为 /etc/dnsmasq.conf,本配置文件只列举出常用的几个配置项的使用方法.

Dnsmasq配置文件dnsmasq.conf详解: # 缓存条数,默认为150条。cache-size=0 禁用缓存 cache-size=10000 ##指定 resolv-file 文件路径(上游DNS服务器),默认/etc/resolv.dnsmasq。 resolv-file=/etc/dnsmasq-resolv.conf ###添加读取额外的 hosts 文件路径,可以多次指定。如果指定为目录,则读取目录中的所有文件。 addn-hosts=/etc/dnsmasq.hosts #表示严格按照resolv.conf中的顺序进行查找 strict-order #用此主机为局域网提供默认 DNS,写本机的局域网IP listen-address=192.168.10.30,127.0.0.1 #设置日志记录器 log-queries log-facility=/var/log/dnsmasq.log local-ttl=600 # 该目录下的所有.conf文件都是要做解析的 conf-dir=/etc/dnsmasq.d # 指定域名解析到特定的ip上,后面的ip地址为你的主机ip: address=/saneri.com/192.168.10.30 # 智能DNS加快解析速度,后面ip地址为dns server=/cn/114.114.114.114 server=/taobao.com/114.114.114.114

开始搭建一台dnsmasq域名解析服务器:

本机的ip地址是:192.168.10.30,其中192.168.10.2为dns和网关的ip地址,可以正常访问互联网.

# cat /etc/resolv.conf# Generated by NetworkManagernameserver 192.168.10.2

1.安装:

# yum install dnsmasq -y

2.启动服务:

# systemctl enable dnsmasq.service # systemctl start dnsmasq.service

3.查看版本:

# dnsmasq -v

4.修改配置文件:

dnsmasq配置选项比较多,我们可以根据实际需求来进行配置。下面为我的配置文件:

# cat /etc/dnsmasq.conf cache-size=10000 resolv-file=/etc/dnsmasq-resolv.conf addn-hosts=/etc/dnsmasq.hosts log-queries log-facility=/var/log/dnsmasq.log local-ttl=600 conf-dir=/etc/dnsmasq.d strict-order listen-address=192.168.10.30,127.0.0.1

指定 resolv-file 文件路径(上游DNS服务器),默认/etc/resolv.dnsmasq,此处为/etc/dnsmasq-resolv.conf文件,和/etc/resolv.conf文件内容保持一致.resolv-file=/etc/dnsmasq-resolv.conf

解析是有顺序的,所以一定要将本机的ip作为dns放在前面,如果顺序不对,解析也是会出问题的.

[root@localhost etc]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 192.168.10.30 nameserver 192.168.10.2 [root@localhost etc]# cat /etc/dnsmasq-resolv.conf nameserver 192.168.10.30 nameserver 192.168.10.2 [root@localhost etc]#

#添加读取额外的 hosts 文件路径,可以多次指定。如果指定为目录,则读取目录中的所有文件,这里指定的域名和ip都是一对一的关系.

addn-hosts=/etc/dnsmasq.hosts

[root@localhost etc]# cat /etc/dnsmasq.hosts 192.168.10.30 www.saneri.com.io 192.168.10.30 ftp.saneri.com.io 192.168.10.30 momo.com.io [root@localhost etc]#

# 该目录下的所有.conf文件都是要做解析的,我在这个目录下创建了一个address.conf的配置文件,用来将域名解析到特定的ip上面,这种定义方式支持泛域名解析和反向解析等方式.conf-dir=/etc/dnsmasq.d

[root@localhost etc]# cat /etc/dnsmasq.d/address.conf address=/www.taobao.com/127.0.0.1 ptr-record=127.0.0.1.in-addr.arpa,www.taobao.com address=/baidu.com/127.0.0.1 address=/saneri.com/192.168.10.30 [root@localhost etc]#

这些就是我的配置项,内网的域名解析到指定的主机ip上面,外网的域名解析正常.

5.解析测试

可以在本机使用nslookup进行测试,也可以在开一个客户机,将客户机的dns指向为192.168.10.30进行解析测试;

# nslookup > www.saneri.com.io Server: 192.168.10.30 Address: 192.168.10.30#53 Name: www.saneri.com.io Address: 192.168.10.30 > ftp.saneri.com.io Server: 192.168.10.30 Address: 192.168.10.30#53 Name: ftp.saneri.com.io Address: 192.168.10.30 > momo.com.io Server: 192.168.10.30 Address: 192.168.10.30#53 Name: momo.com.io Address: 192.168.10.30 > www.taobao.com Server: 192.168.10.30 Address: 192.168.10.30#53 Name: www.taobao.com Address: 127.0.0.1 > saneri.com Server: 192.168.10.30 Address: 192.168.10.30#53 Name: saneri.com Address: 192.168.10.30 > baidu.com Server: 192.168.10.30 Address: 192.168.10.30#53 Name: baidu.com Address: 127.0.0.1 > www.baidu.com Server: 192.168.10.30 Address: 192.168.10.30#53 Name: www.baidu.com Address: 127.0.0.1 > www.sina.cn Server: 192.168.10.30 Address: 192.168.10.30#53 Non-authoritative answer: www.sina.cn canonical name = sina.cn. Name: sina.cn Address: 49.7.36.58 > exit [root@localhost ~]#

 

参考文档:https://blog.51cto.com/longlei/2065967



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有